Data communications networks are typically comprised of a set of nodes (e.g., computers, routers and/or switches) connected by a set of two-way data communications links (e.g., wires, cable, fiber, microwave or radio wave channels, etc.). In a data communications network, a node is a connection point, either a redistribution point or an end point, for data transmissions. In existing data communications networks, each node in the network (especially if the node is a switch or router) typically requires a programmed or engineered capability to recognize, process and/or forward data traffic to other nodes in the network according to various network routing and flow control protocols designed to allow sharing the bandwidth available in each interface link in the network as data travels in both directions across that interface link.
In a two-way data communications network, routing protocols are used by a device or, in some cases, by software in a computer, to determine the next connection point to which a packet of data should be forwarded toward its final destination. A hardware or software “router,” which is typically connected to at least two two-way interface links, determines which way to send each data packet based on its current understanding of the status (e.g., bandwidth available, congestion level, collision potential, etc.) of the links to which it is connected. Thus, routers use routing protocols to determine the route for a data flow and, more specifically, to which adjacent connection points in a network each data packet in the data flow should be sent. A router is often included as part of a network “switch,” which is also a network device that selects a path or circuit for sending a packet of data to its next destination.
“Flow control” is the management of data flow between computers or devices or between nodes in a data communications network so that the data is transmitted at an optimum rate and in a preferred order. Too much data arriving before a device or interface link can handle it can cause congestion, collisions and/or queue overflow conditions, the result of which can be that some of the data is either lost or must be retransmitted. In existing data communications networks, flow control protocols are necessary in order to slow down or cease data transmissions across a congested two-way network interface link until the congestion in the two-way interface link eases.
When routing and flow control protocols are used in a data communications network to manage and control data traffic moving in both directions over two-way links (also called “channels”), a significant amount of bandwidth in each two-way data communication channel must be consumed by the many routing and flow control messages that must be moved from node to node around the data communications network along with the actual data. When there is a very large number of nodes in the network, or when there is a sizable number of data requests that must be processed and put through the network, the degradation in actual data transmission speeds resulting from the fact that significant amounts of bandwidth are being used to exchange routing and flow control protocol messages can become unacceptably high.
Accordingly, there is a need for a network data distribution system that maximizes the speed at which actual data may be retrieved and distributed throughout the network. There is a further need for network data distribution systems and methods that use 100% of the available bandwidth in a data communications channel for transmitting actual data. There is still a further need for systems and methods that achieve maximum data transmission speeds without having to account for or worry about congestion, collisions or packet loss in each link.